@haveEyes
@speak(666)
@name
class Person{}

// target 即 class 对象
function haveEyes(target){
    target.haveeyes = true
}

// 通过给函数传参，函数返回一个函数，将返回函数作为装饰器处理函数，即可完成装饰器传参
function speak(word) {
    return (target) => {
        target.speak = function(){
            console.log(word)
        }
       
    }
}

// 通过原型对象 `target.prototype` 可以通过原型链给类的对象添加成员属性
function name(target){
    target.prototype.name = 'default name'
}

console.log(Person.haveeyes);
Person.speak()

const Andy = new Person()
console.log(Andy.name)